<?php
/**
 * 文本替换容器
 * 
 * 将所有替换的文本添加到容器中，最后再一次性执行完成.
 *
 * @version $Id: IMintReplacement.php 312 2008-04-23 16:29:38Z iwind $
 * @package util.mint
 */
class IMintReplacement extends IObject {
	private static $counter = 0;
	private static $scriptData = array();
	private static $textData = array();
	
	/**
	 * 添加一个待替换文本
	 *
	 * 返回一DOMText
	 * 
	 * @param string $text 文本
	 * @return DOMtext
	 * @since 0.0.3
	 */
	public static function addScript($text) {
		return new DOMText(self::add($text, "php"));
	}
	
	/**
	 * 添加一个待替换文本
	 *
	 * 返回一DOMText
	 * 
	 * @param string $text 文本
	 * @return DOMtext
	 * @since 0.0.3
	 */	
	public static function addText($text) {
		return new DOMText(self::add($text, "text"));	
	}
	
	
	/**
	 * 添加一个待替换文本
	 * 
	 * 返回一个待替换文本在Replacement中的标记
	 *
	 * @param string $text 文本
	 * @param string $type 文本类型，可以为php和text
	 * @return string
	 */
	public static function add($text, $type = "php") {
		self::$counter ++;
		$mark = "...@mint@" . self::$counter . "...";
		if ($type == "php") {
			self::$scriptData[$mark] = $text;
		}
		else {
			self::$textData[$mark] = $text;
		}
		return $mark;
	}
	
	/**
	 * 取得对象中的含有PHP脚本的数据
	 *
	 * @return array
	 * @since 0.0.3
	 */
	public static function getScriptData() {
		return self::$scriptData;
	}
	
	/**
	 * 取得对象中的含有文本的数据
	 *
	 * @return array
	 * @since 0.0.3
	 */	
	public static function getTextData() {
		return self::$textData;
	}
}

?>